cssstylechange: Add helper function to print change
authorTimm Bäder <mail@baedert.org>
Fri, 5 Feb 2016 09:28:13 +0000 (10:28 +0100)
committerTimm Bäder <mail@baedert.org>
Sun, 7 Feb 2016 18:16:26 +0000 (19:16 +0100)
So I don't have to print both styles to the console, paste them both
into a file and then run diff on the 2 files anymore.

gtk/gtkcssstylechange.c
gtk/gtkcssstylechangeprivate.h

index 0ce6120f300479cd7c3bc967db564ca9283b0e04..400dfe8418d75da51e152ff5e71d41d9a9ecd30d 100644 (file)
@@ -110,3 +110,47 @@ gtk_css_style_change_changes_property (GtkCssStyleChange *change,
   return _gtk_bitmask_get (change->changes, id);
 }
 
+void
+gtk_css_style_change_print (GtkCssStyleChange *change,
+                            GString           *string)
+{
+  int i;
+  GtkCssStyle *old = gtk_css_style_change_get_old_style (change);
+  GtkCssStyle *new = gtk_css_style_change_get_new_style (change);
+
+  for (i = 0; i < GTK_CSS_PROPERTY_N_PROPERTIES; i ++)
+    {
+      if (gtk_css_style_change_changes_property (change, i))
+        {
+          GtkCssStyleProperty *prop;
+          GtkCssValue *value;
+          const char *name;
+
+          prop = _gtk_css_style_property_lookup_by_id (i);
+          name = _gtk_style_property_get_name (GTK_STYLE_PROPERTY (prop));
+
+          value = gtk_css_style_get_value (old, i);
+          _gtk_css_value_print (value, string);
+
+          g_string_append_printf (string, "%s: ", name);
+          _gtk_css_value_print (value, string);
+          g_string_append (string, "\n");
+
+          g_string_append_printf (string, "%s: ", name);
+          value = gtk_css_style_get_value (new, i);
+          _gtk_css_value_print (value, string);
+          g_string_append (string, "\n");
+        }
+    }
+
+}
+
+char *
+gtk_css_style_change_to_string (GtkCssStyleChange *change)
+{
+  GString *string = g_string_new ("");
+
+  gtk_css_style_change_print (change, string);
+
+  return g_string_free (string, FALSE);
+}
index 078dee09444e0e45f4951acdebfb7a57900986cf..85b9a323ab55f29604fd75f5bf46700dd5e5f3ca 100644 (file)
@@ -47,7 +47,9 @@ gboolean        gtk_css_style_change_affects            (GtkCssStyleChange
                                                          GtkCssAffects           affects);
 gboolean        gtk_css_style_change_changes_property   (GtkCssStyleChange      *change,
                                                          guint                   id);
+void            gtk_css_style_change_print              (GtkCssStyleChange      *change, GString *string);
 
+char *          gtk_css_style_change_to_string          (GtkCssStyleChange      *change);
 G_END_DECLS
 
 #endif /* __GTK_CSS_STYLE_CHANGE_PRIVATE_H__ */